# 首先需要安装 mysql-connector-python 模块
import mysql.connector
# 连接到数据库
try:
    # 建立与 MySQL 数据库的连接，指定主机、用户名、密码和数据库名称
    cnx = mysql.connector.connect(
        host="localhost",
        user="root",
        password="1234Qwer",
        database="hmdb"
    )
    # 创建游标对象，用于执行 SQL 语句
    cursor = cnx.cursor()
    # 执行 SQL 语句
    # 构建一个 SQL 查询语句，从多个表中选择并计算数据
    query = ("SELECT "
             # 为结果集添加一个名为 'period' 的列，其值为 '2021年12月数据'
             "'2021年12月数据' AS period,"
             # 计算 assay 表中 water_content 列的平均值，结果保留两位小数，命名为 '水份'
             "ROUND(AVG(b.`water_content`), 2) AS 水份,"
             # 计算 weigh 表中 pure_weight 列的总和，结果取整，命名为 '纯重'
             "ROUND(SUM(c.`pure_weight`), 0) AS 纯重,"
             # 计算 weigh 表中 Amount_paid 列的总和，命名为 '总价'
             "SUM(c.`Amount_paid`) AS 总价 "
             # 从 registration 表中选择数据，使用别名 'a'
             "FROM registration a "
             # 连接 assay 表，使用别名 'b'
             "JOIN assay b "
             # 连接条件：registration 表的 id 等于 assay 表的 registration_id
             "ON a.id = b.`registration_id`"
             # 连接 weigh 表，使用别名 'c'
             "JOIN weigh c "
             # 连接条件：registration 表的 id 等于 weigh 表的 registration_id
             "ON a.id = c.`registration_id` "
             # 筛选出 create_time 以 '2021-12' 开头的数据
             "WHERE a.create_time LIKE '2021-12%';")
    cursor.execute(query)
    # 获取查询结果
    results = cursor.fetchall()
    # 遍历结果集并打印每一行
    for row in results:
        print(row)
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    cnx.close()
except mysql.connector.Error as err:
    # 打印异常信息
    print(f"Something went wrong: {err}")